<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
		<title>m3gen :: Documentation index</title>
		<link rel="stylesheet" href="3gen.docs.css" type="text/css" />		
	</head>
	<body>
		<h1>M3Gen :: Documentation index</h1>
		<p>
			M3Gen is a plugin for jsTree (v.0.1 was created for jsTree 0.9.8).
			The plugin enables transformation of any instance model (an array in JSON format) to the 
			canonical jsTree model used by jsTree to draw the tree.
			M3Gen operates by having an instance model and some transformation rules (ruleSetConfiguration) passed to it. 
			M3Gen calls parses the instance model by traversing it and applying rules defined in ruleSets in the ruleSetConfiguration. 
			During this process a hierarchical nodeObj model is created. The tree model consists of branches on branches and finally leaves.
			Each branch can have a special branch node created as the container node for children within the branch.
			The nodeObj model is a general purpose model, not specific to jsTree.
			In the final step, a transformer is called to transform the nodeObj model to a specific model, by default to the jsTree model.
			In the future, other result models could easily be supported by creating adapters to these models using the same pattern transforming the same
			underlying nodeObj model.			
			M3Gen has been designed to be highly flexible and customizable. The community is free to provide additional add-ons etc.
			The design uses javascript inheritance, including a few of J.Crockford's utility methods for inheritance.
			M3Gen has been designed around parsers and builders. Each prototype object (class) has prototype methods which can be totally overridden or partly overridden
			using the uber() method.			

			Detailed documentation of M3Gen can be found here:			
			<ul>
				<li><a href="quickstart.html">Quickstart</a></li>				
				<li><a href="ruleSetConfiguration.html">RuleSet configuration</a></li>
				<li><a href="lifecycle.html">Lifecycle</a></li>
				<li><a href="eventhandling.html">Eventhandling</a></li>
				<li><a href="exceptions.html">Exceptions</a></li>
				<li><a href="configuration.html">Configuration</a></li>				
				<li><a href="parsers.html">Parsers</a></li>
				<li><a href="builders.html">Builders</a></li>
				<li><a href="generator.html">Generator</a></li>
				<li><a href="terms.html">Terms and definitions (dictionary)</a></li>				
				<li><a href="../m3gen.html">Example of m3gen execution using simple person model and ruleSet</a></li>				
			</ul>			
		</p>
	</body>
</html>
